What is @jsforce/jsforce-node?
@jsforce/jsforce-node is a powerful and flexible library for interacting with Salesforce from Node.js applications. It provides a wide range of functionalities including authentication, CRUD operations, SOQL queries, and more.
What are @jsforce/jsforce-node's main functionalities?
Authentication
This code demonstrates how to authenticate with Salesforce using a username and password. The `login` method is used to establish a connection.
const jsforce = require('@jsforce/jsforce-node');
const conn = new jsforce.Connection();
conn.login('username@example.com', 'password+securityToken', function(err, userInfo) {
if (err) { return console.error(err); }
console.log('User ID: ' + userInfo.id);
console.log('Org ID: ' + userInfo.organizationId);
});
CRUD Operations
This code demonstrates how to create a new record in Salesforce. The `sobject` method is used to specify the Salesforce object, and the `create` method is used to create a new record.
const jsforce = require('@jsforce/jsforce-node');
const conn = new jsforce.Connection();
conn.login('username@example.com', 'password+securityToken', function(err, userInfo) {
if (err) { return console.error(err); }
conn.sobject('Account').create({ Name: 'New Account' }, function(err, ret) {
if (err || !ret.success) { return console.error(err, ret); }
console.log('Created record id : ' + ret.id);
});
});
SOQL Queries
This code demonstrates how to execute a SOQL query to retrieve data from Salesforce. The `query` method is used to run the SOQL query and fetch the results.
const jsforce = require('@jsforce/jsforce-node');
const conn = new jsforce.Connection();
conn.login('username@example.com', 'password+securityToken', function(err, userInfo) {
if (err) { return console.error(err); }
conn.query('SELECT Id, Name FROM Account', function(err, result) {
if (err) { return console.error(err); }
console.log('Total : ' + result.totalSize);
console.log('Fetched : ' + result.records.length);
});
});
Bulk Operations
This code demonstrates how to perform bulk operations in Salesforce. The `bulk.load` method is used to insert multiple records in a single API call.
const jsforce = require('@jsforce/jsforce-node');
const conn = new jsforce.Connection();
conn.login('username@example.com', 'password+securityToken', function(err, userInfo) {
if (err) { return console.error(err); }
const records = [{ Name: 'Account 1' }, { Name: 'Account 2' }];
conn.bulk.load('Account', 'insert', records, function(err, rets) {
if (err) { return console.error(err); }
for (let i=0; i < rets.length; i++) {
if (rets[i].success) {
console.log('Created record id : ' + rets[i].id);
} else {
console.log('Failed to create record ' + rets[i].errors.join(', '));
}
}
});
});
Other packages similar to @jsforce/jsforce-node
node-salesforce
node-salesforce is another popular library for interacting with Salesforce from Node.js. It offers similar functionalities such as authentication, CRUD operations, and SOQL queries. However, @jsforce/jsforce-node is generally considered more feature-rich and better maintained.
nforce
nforce is a lightweight Node.js library for interacting with Salesforce. It provides basic functionalities like authentication and CRUD operations but lacks some of the advanced features available in @jsforce/jsforce-node, such as bulk operations and streaming API support.
salesforce-connection
salesforce-connection is a simple library for connecting to Salesforce and performing basic operations. It is less comprehensive compared to @jsforce/jsforce-node and is suitable for simpler use cases where advanced features are not required.
jsforce
Salesforce API Library for JavaScript applications (both on web browser and Node.js)
Overview
JSforce (f.k.a. Node-Salesforce) is an isomorphic JavaScript Library utilizing Salesforce's API: It works both in the browser and with Node.js.
It capsulates the access to various APIs provided by Salesforce in asynchronous JavaScript function calls.
It also has command line interface (CLI) which gives interactive console (REPL), so you can learn the usage without hassle.
Supported Salesforce APIs are the following:
- REST API (SOQL, SOSL, describe, etc.)
- Apex REST
- Analytics API
- Bulk API
- Chatter API
- Metadata API
- SOAP API
- Streaming API
- Tooling API
Documentation
See documentation in https://jsforce.github.io/
v3 API reference:
https://jsforce.github.io/jsforce/
v1 API reference:
https://jsforce.github.io/jsforce/doc/
Migration
Migrating from v1 → v3? Find the migration guide here
Migrating from v2 → v3? Find the migration guide here
Releases
See Releases.
Node-specific release
See jsforce-node.
License
See license (MIT License).
Authors
Notes
If you have any questions first file it on issues before contacting authors via e-mail.
How to build/run tests:
See DEVELOPING.md
Contributions
Your contributions are welcome: both by reporting issues on GitHub issues or pull-requesting patches.
If you want to implement any additional features, to be added to JSforce to our main branch, which may or may not be merged please first check current opening issues with milestones and confirm whether the feature is on road map or not.
If your feature implementation is brand-new or fixing unsupposed bugs in the library's test cases, please include additional test codes in the test/
directory.